"""
HTML Block 工具函数
用于读取和管理 HTML 块的内容文件
"""

import os
import frappe


def get_home_navigation_html():
    """
    读取主页导航 HTML 内容
    
    Returns:
        str: HTML 内容字符串
    """
    html_file_path = frappe.get_app_path("theme", "templates", "home_navigation.html")
    
    try:
        with open(html_file_path, 'r', encoding='utf-8') as file:
            return file.read().strip()
    except FileNotFoundError:
        frappe.log_error(f"主页导航 HTML 文件未找到: {html_file_path}")
        return ""
    except Exception as e:
        frappe.log_error(f"读取主页导航 HTML 文件时出错: {str(e)}")
        return ""


def get_home_navigation_css():
    """
    读取主页导航 CSS 样式
    
    Returns:
        str: CSS 样式字符串
    """
    css_file_path = frappe.get_app_path("theme", "public", "css", "home_navigation.css")
    
    try:
        with open(css_file_path, 'r', encoding='utf-8') as file:
            return file.read().strip()
    except FileNotFoundError:
        frappe.log_error(f"主页导航 CSS 文件未找到: {css_file_path}")
        return ""
    except Exception as e:
        frappe.log_error(f"读取主页导航 CSS 文件时出错: {str(e)}")
        return ""


def create_html_block(name, html_content, css_content, script_content="", private=0):
    """
    创建 Custom HTML Block 记录的通用函数
    
    Args:
        name (str): HTML 块的名称
        html_content (str): HTML 内容
        css_content (str): CSS 样式内容
        script_content (str): JavaScript 脚本内容，默认为空
        private (int): 是否私有，0为公开，1为私有，默认为0
    
    Returns:
        bool: 创建成功返回 True，失败返回 False
    """
    try:
        # 检查是否已存在同名记录
        if frappe.db.exists("Custom HTML Block", name):
            print(f"📝 {name} HTML 块记录已存在，跳过创建")
            return True
        
        # 创建 Custom HTML Block 文档
        html_block_doc = frappe.get_doc({
            "doctype": "Custom HTML Block",
            "name": name,
            "html": html_content,
            "style": css_content,
            "script": script_content,
            "private": private
        })
        
        # 插入记录到数据库
        html_block_doc.insert(ignore_permissions=True)
        
        print(f"✅ 成功创建 {name} HTML 块记录")
        return True
        
    except Exception as e:
        frappe.log_error(f"创建 {name} HTML 块记录时出错: {str(e)}")
        print(f"❌ 创建 {name} HTML 块记录失败: {str(e)}")
        return False


def delete_html_block(name):
    """
    删除 Custom HTML Block 记录
    
    Args:
        name (str): HTML 块的名称
    
    Returns:
        bool: 删除成功返回 True，失败返回 False
    """
    try:
        # 检查HTML块记录是否存在
        if not frappe.db.exists("Custom HTML Block", name):
            print(f"📝 {name} HTML 块记录不存在，跳过删除")
            return True
        
        # 删除记录
        frappe.delete_doc("Custom HTML Block", name, ignore_permissions=True)
        
        print(f"✅ 成功删除 {name} HTML 块记录")
        return True
        
    except Exception as e:
        frappe.log_error(f"删除 {name} HTML 块记录时出错: {str(e)}")
        print(f"❌ 删除 {name} HTML 块记录失败: {str(e)}")
        return False